Timm Bäder [Fri, 2 Feb 2018 14:16:18 +0000 (15:16 +0100)]
widget: Remove realized checks from _translate_coordinates
As discussed.
Timm Bäder [Fri, 2 Feb 2018 13:50:17 +0000 (14:50 +0100)]
widget: Don't call snapshot vfunc if width or height are 0
The result won't be visible anyway. This also prevents problems with
widgets that create some resource the size of the widget, like
GtkGLArea. It also keeps us from snapshotting revealers with
size 0.
Timm Bäder [Thu, 1 Feb 2018 08:36:45 +0000 (09:36 +0100)]
iconbrowser: setup image dnd for image6
Otherwise the we fail to set the drag source icon name later on.
Emmanuele Bassi [Fri, 2 Feb 2018 16:02:59 +0000 (17:02 +0100)]
Remove all gdk_threads_* entry points
Now that we don't use them anywhere, it's time for them to go.
https://bugzilla.gnome.org/show_bug.cgi?id=793124
Emmanuele Bassi [Fri, 2 Feb 2018 15:34:40 +0000 (16:34 +0100)]
Drop the Big GDK Lock
GDK has a lock to mark critical sections inside the backends.
Additionally, code that would re-enter into the GTK main loop was
supposed to hold the lock.
Back in the Good Old Days™ this was guaranteed to kind of work only on
the X11 backend, and would cause a neat explosion on any other GDK
backend.
During GTK+ 3.x we deprecated the API to enter and leave the critical
sections, and now we can remove all the internal uses of the lock, since
external API that uses GTK+ 4.x won't be able to hold the GDK lock.
https://bugzilla.gnome.org/show_bug.cgi?id=793124
Emmanuele Bassi [Fri, 2 Feb 2018 14:51:47 +0000 (15:51 +0100)]
Replace gdk_threads_add_timeout* with g_timeout_add()
The main GDK thread lock is not portable and deprecated.
The only reason why gdk_threads_add_timeout() and
gdk_threads_add_timeout_full() exist is to allow invoking a callback
with the GDK lock held, in case 3rd party libraries still use the
deprecated gdk_threads_enter()/gdk_threads_leave() API.
Since we're removing the GDK lock, and we're releasing a new major API,
such code cannot exist any more; this means we can use the GLib API for
installing timeout callbacks.
https://bugzilla.gnome.org/show_bug.cgi?id=793124
Emmanuele Bassi [Fri, 2 Feb 2018 14:08:02 +0000 (15:08 +0100)]
Replace gdk_threads_add_idle* with g_idle_add()
The main GDK thread lock is not portable and deprecated.
The only reason why gdk_threads_add_idle() and
gdk_threads_add_idle_full() exist is to allow invoking a callback with
the GDK lock held, in case 3rd party libraries still use the deprecated
gdk_threads_enter()/gdk_threads_leave() API.
Since we're removing the GDK lock, and we're releasing a new major API,
such code cannot exist any more; this means we can use the GLib API for
installing idle callbacks.
https://bugzilla.gnome.org/show_bug.cgi?id=793124
Benjamin Otte [Sat, 3 Feb 2018 10:52:37 +0000 (11:52 +0100)]
toolpalette: Remove
The widget was basically unmaintained since GTK 3.0 and the only known
user was Glade.
Benjamin Otte [Fri, 2 Feb 2018 17:01:17 +0000 (18:01 +0100)]
gtk: Remove GtkRecentChooser
It's not used any more, recent files are only used by the filtchooser
and that one uses GtkRecentManager directly.
Benjamin Otte [Fri, 2 Feb 2018 14:34:34 +0000 (15:34 +0100)]
tests: Unrealize renderer
Renderers must be unrealized these days.
Benjamin Otte [Fri, 2 Feb 2018 13:58:39 +0000 (14:58 +0100)]
texture: Add sanity checks to constructors
width, height and GL texture ID may not be 0, so return_if_fail() if
they are.
Benjamin Otte [Fri, 2 Feb 2018 13:58:12 +0000 (14:58 +0100)]
texture: Make the texture id a guint
Texture IDs are unsigned, so treat them like that.
Emmanuele Bassi [Fri, 2 Feb 2018 09:13:10 +0000 (10:13 +0100)]
Rename GtkActionMuxer's private header
Follow the naming policy for private headers.
Emmanuele Bassi [Fri, 2 Feb 2018 09:08:41 +0000 (10:08 +0100)]
Rename GtkActionHelper private header
Follow the naming scheme for private headers.
Emmanuele Bassi [Fri, 2 Feb 2018 09:01:47 +0000 (10:01 +0100)]
Split list of sources
We need to have two lists: one, with the list of sources that need to be
introspected; and one with the list of sources that contain only private
symbols.
This reduces the amount of source files that the introspection scanner
needs to traverse, and thus the build time.
Emmanuele Bassi [Thu, 1 Feb 2018 15:13:53 +0000 (16:13 +0100)]
docs: Annotate gdk_keymap_get_display()
Avoid a warning from the introspection scanner.
Emmanuele Bassi [Thu, 1 Feb 2018 15:08:51 +0000 (16:08 +0100)]
Remove unnecessary gtk-doc stanza
The places sidebar is not a publicly documented API, so there's no need
to use a gtk-doc stanza — especially if the syntax of the stanza is
wrong.
Emmanuele Bassi [Thu, 1 Feb 2018 15:05:58 +0000 (16:05 +0100)]
Remove leading underscore from private symbols
There's no need to do that any more, as only explicitly annotated
symbols are exported.
Emmanuele Bassi [Thu, 1 Feb 2018 15:01:38 +0000 (16:01 +0100)]
Rename gtkiconcachevalidator.h
Follow the same convention for private headers as newer parts of GTK.
Emmanuele Bassi [Thu, 1 Feb 2018 14:34:57 +0000 (15:34 +0100)]
Rename gtkiconcache.h
The gtkiconcache.h header is private, so rename it to follow the naming
scheme for private headers.
Emmanuele Bassi [Thu, 1 Feb 2018 14:29:01 +0000 (15:29 +0100)]
Replace boilerplate in GtkIcon
Be a good GObject citizen and use G_DECLARE_FINAL_TYPE instead of
writing the usual GObject boilerplate.
Matthias Clasen [Wed, 31 Jan 2018 16:44:26 +0000 (17:44 +0100)]
iconview: Fix a problem with the previous change
After commit
ffef28a7e8d5ffef7de6a3baccb30b0021b6b0ff,
gtk-icon-browser was spewing critical warnings when
changing sections. Avoid that by respecting the return
value of gtk_tree_model_get_iter.
Benjamin Otte [Sun, 17 Dec 2017 19:40:03 +0000 (20:40 +0100)]
dnd: Remove unused member variable
Benjamin Otte [Sun, 17 Dec 2017 19:36:40 +0000 (20:36 +0100)]
dnd: Move GdkDragProtocol to X11
It's not needed in the generic implementation, so don't have it there.
Benjamin Otte [Sun, 17 Dec 2017 19:29:11 +0000 (20:29 +0100)]
dnd: Remove 2 vfuncs that aren't needed
They're only used inside the X11 backend, and the backend can just call
its own function.
Timm Bäder [Tue, 30 Jan 2018 20:38:23 +0000 (21:38 +0100)]
icon browser: Remove usage of stock-size property
Does not exist anymore.
Timm Bäder [Tue, 30 Jan 2018 09:18:54 +0000 (10:18 +0100)]
Revert "menu: Simplify popup_at_rect"
This reverts commit
a29306cb1e739afaa4a7b31d48c4bec328cfef9e.
Timm Bäder [Tue, 30 Jan 2018 09:13:51 +0000 (10:13 +0100)]
range: Always queue an allocate if the adjustment changed
The slider gets its new size in size-allocate, so we have to do this
even if the range has no origin.
Jason Gerecke [Tue, 10 Oct 2017 16:17:43 +0000 (09:17 -0700)]
wayland: Add support for BTN_STYLUS3
BTN_STYLUS3 is defined by the Linux 4.15 kernel and is sent when the
third button on a stylus is pressed. At the moment, only Wacom's "Pro
Pen 3D" has three stylus buttons. Pressing this button triggers a button
8 event to be sent under X11, so we use the same mapping here.
https://bugzilla.gnome.org/show_bug.cgi?id=790033
Nuclear Sunshine [Tue, 23 Jan 2018 13:49:31 +0000 (13:49 +0000)]
Add AGPL3-only licence to GtkAboutDialog
https://bugzilla.gnome.org/show_bug.cgi?id=792793
Timm Bäder [Sat, 27 Jan 2018 11:19:22 +0000 (12:19 +0100)]
gl: Add test case for clipped cross fade nodes
Timm Bäder [Sat, 27 Jan 2018 11:13:37 +0000 (12:13 +0100)]
gl renderer: Reset clip when drawing offscreen
Just like we reset the scissor test and the viewport, we also can't use
the current clip anymore in this case.
Timm Bäder [Sat, 27 Jan 2018 11:11:49 +0000 (12:11 +0100)]
GskRoundedRect: Fix GSK_ROUNDED_RECT_INIT macro
GskRoundedRect does not have a .rect member, it's 'bounds'. Also,
properly initialize all fields, i.e. all the corners.
Timm Bäder [Sat, 27 Jan 2018 10:02:07 +0000 (11:02 +0100)]
gl renderer: Fix hidpi cairo node rendering
We can't just unconditionally create a larger texture here, since the
incoming cairo surface might have a device scale that doesn't fit our
scale_factor. Instead, look up the surface device scale and use that.
Timm Bäder [Sat, 27 Jan 2018 10:00:59 +0000 (11:00 +0100)]
gl renderer: Make width/height relation more obvious
In add_offscreen_ops, we use the max_x/min_x values for the texture and
viewport width, and the max_y/min_y for the texture and viewport height.
Timm Bäder [Fri, 26 Jan 2018 16:28:25 +0000 (17:28 +0100)]
inspector: Actually call the pick() vfunc when picking
Otherwise, overridden pick vfuncs don't work and we e.g. pick widgets
scrolled away in a viewport.
Timm Bäder [Fri, 26 Jan 2018 14:51:33 +0000 (15:51 +0100)]
entry: Remove unused struct members
Timm Bäder [Wed, 24 Jan 2018 07:44:53 +0000 (08:44 +0100)]
menu: Simplify popup_at_rect
No need to keep a separate current_event variable around, we don't use
it anyway.
Matthias Clasen [Tue, 23 Jan 2018 23:04:28 +0000 (00:04 +0100)]
gdk: Stop referring to ::key-press/release-event
These signals are going away, don't mention them in
the docs.
Matthias Clasen [Tue, 23 Jan 2018 23:02:58 +0000 (00:02 +0100)]
entry completion: Stop using key-press/release-event
We can use the existing ::event handler for this.
Timm Bäder [Tue, 23 Jan 2018 20:46:05 +0000 (21:46 +0100)]
gsk: Add test case for last commit
Timm Bäder [Tue, 23 Jan 2018 20:44:33 +0000 (21:44 +0100)]
gl renderer: Fix outset shadow outline transform
This fixes hidpi blurred outset shadows
Emmanuele Bassi [Thu, 18 Jan 2018 19:23:16 +0000 (19:23 +0000)]
Enforce UTF-8 encoding when opening C files
We have a couple of Python 3.x scripts that parse C files, and since C
does not have any encoding, we need to force one ourselves, to avoid the
case when we're running the build in a non-UTF-8 locale.
https://bugzilla.gnome.org/show_bug.cgi?id=792497
Daniel Boles [Thu, 18 Jan 2018 00:51:24 +0000 (00:51 +0000)]
Widget: Don’t call reset() on NULL EventController
GtkGesture is a GtkEventController. gtk_event_controller_dispose() calls
_gtk_widget_remove_controller(). That NULLs the pointer-to-Controller in
our EventControllerData but does not delete said ECData from our GList.
Subsequently, if that same Widget gets unparent()ed, that method calls
unset_state_flags(), which leads to doing reset_controllers() if we are
insensitive. Now, unlike most most other loops over the GList of ECData,
reset_controllers() does not skip nodes whose pointer-to-Controller is
NULL. So, we call gtk_event_controller_reset(NULL) and get a CRITICAL.
This surfaced in a gtkmm program. The Gesture is destroyed before the
Widget. The Widget then gets dispose()d, which calls unparent()… boom.
I didn’t find an MCVE yet but would hope this logic is correct anyway:
The simplest fix is to make the loop in gtk_widget_reset_controllers()
skip GList nodes with a NULL Controller pointer, like most other such
loops, so we avoid passing the NULL to gtk_event_controller_reset().
In other, live cases, _gtk_widget_run_controllers() loops over the GList
and removes/frees nodes having NULL Controllers, so that should suffice.
But this clearly was not getting a chance to happen in the failing case.
https://bugzilla.gnome.org/show_bug.cgi?id=792624
GNOME Translation Robot [Mon, 22 Jan 2018 18:34:48 +0000 (18:34 +0000)]
Update Esperanto translation
(cherry picked from commit
814c55d473c6a7ab9f930421aad5612a351ba68d)
Juan Pablo Ugarte [Mon, 22 Jan 2018 14:20:14 +0000 (11:20 -0300)]
GtkGestureMultiPress: check event state before emiting released signal
Fix bug 771986 "Inconsistent 'row-activated' signal emission before \
drag'n'drop, 'activate-on-single-click'=TRUE, 'reorderable'=TRUE"
Timm Bäder [Sun, 21 Jan 2018 19:37:46 +0000 (20:37 +0100)]
widget: Only initialize bounds rect if necessary
We only use the graphene_rect_t version of the offset_clip for the
fallback cairo nodes.
Timm Bäder [Sun, 21 Jan 2018 14:23:17 +0000 (15:23 +0100)]
vulkan: Fix release builds
Timm Bäder [Sun, 21 Jan 2018 10:01:32 +0000 (11:01 +0100)]
combobox: Remove some unneeded includes
Simon McVittie [Thu, 26 Oct 2017 14:51:51 +0000 (15:51 +0100)]
Set GDK_WINDOW_STATE_TILED if any edge is tiled
This state flag is used in several places in GTK+, for example to
ignore RESIZE_INC hints if tiled. Setting it is also necessary for
backwards compatibility with applications that changed their behaviour
when tiled, such as GNOME Terminal and its MATE fork.
Signed-off-by: Simon McVittie <smcv@debian.org>
https://bugzilla.gnome.org/show_bug.cgi?id=789357
Georges Basile Stavracas Neto [Wed, 4 Oct 2017 18:33:15 +0000 (15:33 -0300)]
display-x11: Unset tiled state if _GTK_EDGE_CONSTRAINTS is supported
Commit
c415bef5de introduced support for the new _GTK_EDGE_CONSTRAINTS
atom. If the compositor supports that atom, however, we were always
setting the tiled state, even if no actual tiling information is
available, where the correct action is to completely remove any traces
of the tiled state.
Fix that by correctly removing the tiled state when compositor supports
_GTK_EDGE_CONSTRAINTS Xatom.
https://bugzilla.gnome.org/show_bug.cgi?id=788516
Timm Bäder [Fri, 19 Jan 2018 14:15:09 +0000 (15:15 +0100)]
entrycompletion: Realize toplevel before attempting a grab
Otherwise, gtk_widget_get_window returns NULL and we can't successfully
perform a grab via the later gdk_set_grab call. This fixes the entry
completion in the file chooser not working.
Matthias Clasen [Fri, 19 Jan 2018 15:22:28 +0000 (16:22 +0100)]
tests: Remove some unneeded gtk_widget_show calls
Widgets are visible by default now.
Matthias Clasen [Fri, 19 Jan 2018 15:04:18 +0000 (16:04 +0100)]
iconview: Fix updates with filter models
Filter models rely on views taking a ref on every node
they care about. GtkIconView was not doing that. Amazingly,
this has never shown up in a bug so far, until I spotted
the fallout in gnome-font-viewer.
Matthias Clasen [Fri, 19 Jan 2018 15:02:42 +0000 (16:02 +0100)]
Add a test for ::row-changed vs node refs
Test that filter models propagate ::row-changed if there is
an external reference on the node, and not otherwise. This
is showing up in buggy icon view behaviour, where the icon
view is not redrawing if the content changes in a model that
is below a filter model.
Carlos Garnacho [Fri, 19 Jan 2018 17:47:21 +0000 (18:47 +0100)]
gtkwindow: Disconnect GdkSeat::device-removed callback on finalize
Otherwise dangling callbacks may lead to crashes.
Timm Bäder [Fri, 19 Jan 2018 14:00:22 +0000 (15:00 +0100)]
gl renderer: Fix shadow node child offset
We shouldn't apply the shadow offset when drawing the child offscreen,
instead apply it afterwards when we draw it to the current render
target.
Timm Bäder [Fri, 19 Jan 2018 13:59:31 +0000 (14:59 +0100)]
testsuite: Add another gl renderer test case
Timm Bäder [Fri, 19 Jan 2018 12:21:41 +0000 (13:21 +0100)]
linkbutton: Only set widget cursor once
Timm Bäder [Fri, 19 Jan 2018 09:16:15 +0000 (10:16 +0100)]
inspector: Allow picking insensitive widgets
The default gtk_widget_contains/gtk_widget_pick don't consider
insensitive widgets.
Timm Bäder [Fri, 19 Jan 2018 08:57:49 +0000 (09:57 +0100)]
csswidgetnode: Avoid some unnecessary work
The later code would just ref both styles and not do anything else.
Timm Bäder [Fri, 19 Jan 2018 08:53:39 +0000 (09:53 +0100)]
widget-factory: Fix some layout issues
We have to explicitly set some of these to their default values so
expand-set is TRUE and the boxes stop propagating their expansion state
up the hierarchy.
Timm Bäder [Thu, 18 Jan 2018 20:54:03 +0000 (21:54 +0100)]
textview: Remove some stray debugging output
Leftover from
7046463b880c79b227594a2b35a6c625119d286e
Matthias Clasen [Thu, 18 Jan 2018 22:46:58 +0000 (17:46 -0500)]
Simplify all ui files again
Now even simpler!
Matthias Clasen [Thu, 18 Jan 2018 22:45:12 +0000 (17:45 -0500)]
builder-tool: Try harder to find types
If g_type_from_name fails, try gtk_builder_get_type_from_name
before giving up. This fixes cases like GtkPrinterOptionWidget.
Timm Bäder [Thu, 18 Jan 2018 14:10:49 +0000 (15:10 +0100)]
window: Ignore gtk_window_close calls from close-request handlers
Timm Bäder [Thu, 18 Jan 2018 13:43:36 +0000 (14:43 +0100)]
widget: Always assign values to out parameter in translate_coordinates
safe guard against people using the returned coordinate values without
checking the return value of gtk_widget_translate_coordinates.
Timm Bäder [Thu, 18 Jan 2018 13:42:39 +0000 (14:42 +0100)]
widget: Initialize a local variable
We will later pass this variable on to some other functions, so be safe
against them using the value.
Timm Bäder [Thu, 18 Jan 2018 13:38:27 +0000 (14:38 +0100)]
aboutdialog: Only close on delete events
Clicking on the Credits button should not close the dialog.
Timm Bäder [Thu, 18 Jan 2018 08:40:19 +0000 (09:40 +0100)]
fontchooswerwidget: Center spinbutton next to scales vertically
Timm Bäder [Thu, 18 Jan 2018 07:21:11 +0000 (08:21 +0100)]
gl renderer: Render GL textures upside down
These come from an FBO so we need to flip the texture coords on the y
axis, just like we do everywhere else.
Matthias Clasen [Thu, 18 Jan 2018 04:49:17 +0000 (23:49 -0500)]
Revert "inspector: Stop adding event controllers to the object tree"
This reverts commit
8f3cb2658a79d20912b6f2ec96bc7e6bbdaeb067.
This didn't quite work out, since being in the object tree is
a prerequisite for showing up in the property editor.
Matthias Clasen [Thu, 18 Jan 2018 02:45:08 +0000 (21:45 -0500)]
Document new texture api
Matthias Clasen [Thu, 18 Jan 2018 01:19:19 +0000 (20:19 -0500)]
Use the new api to release resources
When we unrealize a GL area with outstanding textures,
call gdk_texture_release_gl on them to avoid later crashes.
Matthias Clasen [Thu, 18 Jan 2018 01:15:45 +0000 (20:15 -0500)]
Add a way to release GL resources
The inspector may hold on to render nodes and textures
beyond the lifetime of the widget (and thus the GL
resources). To handle this situation, allow the widget
to explicitly release the GL resources, and make
the texture available on the clent-side as a cairo
surface. This lets the recorder still show the content
after the widget is gone.
Matthias Clasen [Thu, 18 Jan 2018 00:49:52 +0000 (19:49 -0500)]
glarea: Drop the dispose vfunc
This was causing us to leak, in the following scenario:
1) gtk_widget_destroy is called on a GL area
2) dispose is run and clears the context
3) the GL area is unrealized, but the context is already cleared,
so we leak all the GL buffers
Matthias Clasen [Thu, 18 Jan 2018 00:49:05 +0000 (19:49 -0500)]
glarea: Always delete textures on unrealize
We need to make the context current for deleting
textures as well, so just do it unconditionally.
Matthias Clasen [Thu, 18 Jan 2018 00:48:33 +0000 (19:48 -0500)]
glarea: Avoid a crash
We must only delete the texture if it is not NULL.
Matthias Clasen [Thu, 18 Jan 2018 00:47:45 +0000 (19:47 -0500)]
gdkgears: add a way to remove gears
This is needed to test the GL resource cleanup
code paths.
Matthias Clasen [Thu, 18 Jan 2018 00:15:14 +0000 (19:15 -0500)]
glarea: Add a pool for GL textures
Handle the situation that a GL texture might remain
in use (e.g. by a slow frame, or by the recorder)
In that case, we can't modify it but must use a
new one. Keep a pool of GL textures for this eventuality.
Matthias Clasen [Thu, 18 Jan 2018 00:12:27 +0000 (19:12 -0500)]
inspector: Don't leak recordings
g_list_model_get_item is transfer full, so we need
to drop the references we get from it. This was showing
up while testing the GL texture cache in GtkGLArea.
Timm Bäder [Wed, 17 Jan 2018 20:47:05 +0000 (21:47 +0100)]
rendernodeimpl: Fix a crash
We may get a NULL renderer here.
Timm Bäder [Wed, 17 Jan 2018 15:02:28 +0000 (16:02 +0100)]
applicationwindow: Fix measure implementation
Really calculate the menubar height, not the width.
Timm Bäder [Wed, 17 Jan 2018 14:42:01 +0000 (15:42 +0100)]
sizerequest: Fix for_size adjustment
We need to pull the proper size from the size request cache and adjust
it accordingly.
Timm Bäder [Wed, 17 Jan 2018 12:11:32 +0000 (13:11 +0100)]
box: Simplify some code
All out varibles in measure implementations must be non-null and -1 is
the default value for the baseline parameters.
Timm Bäder [Wed, 17 Jan 2018 12:02:58 +0000 (13:02 +0100)]
box: Remove self assignment
Timm Bäder [Wed, 17 Jan 2018 11:54:42 +0000 (12:54 +0100)]
box: Remove useless if statement
We already check right before this one whether child->pack != packing
and if so, we continue to the next iteration. So, no need to check again
whether the inverted condition child->pack == packing is true, because
it is.
Timm Bäder [Wed, 17 Jan 2018 11:36:37 +0000 (12:36 +0100)]
label: Update layout width directly form allocation
For the one update_layout_width call in size_allocate, we can just use
the passed-in allocation width instead of a separate (relatively slow)
gtk_widget_get_width call.
Timm Bäder [Tue, 16 Jan 2018 19:25:02 +0000 (20:25 +0100)]
widget: Clip redrawn area to widget clip
The clip can already be modified in size_allocate, so we never want a
widget to invalidate more than its actual clip region.
Timm Bäder [Tue, 16 Jan 2018 17:47:52 +0000 (18:47 +0100)]
box: Remove some unneeded checks
We only call this function from the measure implementation and we should
never get NULL pointers there.
Timm Bäder [Tue, 16 Jan 2018 16:50:11 +0000 (17:50 +0100)]
box: Remove an unnecessary local variable
Timm Bäder [Tue, 16 Jan 2018 16:44:46 +0000 (17:44 +0100)]
box: Use GtkWidget's widget list in get_size
Timm Bäder [Tue, 16 Jan 2018 14:12:24 +0000 (15:12 +0100)]
listbox: Don't assume that row child == focus widget
With widgets supporting child widgets and custom GtkListBoxRow
subclasses, this might not be true.
Timm Bäder [Tue, 16 Jan 2018 13:50:50 +0000 (14:50 +0100)]
widget: Remove reparent special case
Since gtk_widget_reparent doesn't exist anymore, we can also remove this
special case.
Timm Bäder [Mon, 15 Jan 2018 21:07:29 +0000 (22:07 +0100)]
container: Remove some unused includes
Timm Bäder [Mon, 15 Jan 2018 20:58:36 +0000 (21:58 +0100)]
viewport: Remove some unused includes
Matthias Clasen [Wed, 17 Jan 2018 19:43:50 +0000 (14:43 -0500)]
gl area: Avoid trivialities
If we have zero pixels, no need to snapshot anything,
and produce GL errors while doing so.
Matthias Clasen [Wed, 17 Jan 2018 19:39:46 +0000 (14:39 -0500)]
gtk-demo: Add gears to the bowl
Just for fun.
Matthias Clasen [Wed, 17 Jan 2018 14:22:01 +0000 (09:22 -0500)]
Drop GtkGLArea::has-alpha
We now always behave as if has-alpha is TRUE.
Update all callers.
Matthias Clasen [Wed, 17 Jan 2018 12:25:51 +0000 (07:25 -0500)]
Convert gtkglarea to use snapshots
Just append a texture node.
Note that this is not 100% done yet. The GL area really
needs to keep a pool of textures, and only reuse them
once the GdkTexture object is gone.